80 research outputs found

    Accelerating board games through Hardware/Software Codesign

    Get PDF
    Board games applications usually offer a great user experience when running on desktop computers. Powerful high-performance processors working without energy restrictions successfully deal with the exploration of large game trees, delivering strong play to satisfy demanding users. However, nowadays, more and more game players are running these games on smartphones and tablets, where the lower computational power and limited power budget yield a much weaker play. Recent systems-on-a-chip include programmable logic tightly coupled with general-purpose processors enabling the inclusion of custom accelerators for any application to improve both performance and energy efficiency. In this paper, we analyze the benefits of partitioning the artificial intelligence of board games into software and hardware. We have chosen as case studies three popular and complex board games, Reversi, Blokus, and Connect6. The designs analyzed include hardware accelerators for board processing, which improve performance and energy efficiency by an order of magnitude leading to much stronger and battery-aware applications. The results demonstrate that the use of hardware/software codesign to develop board games allows sustaining or even improving the user experience across platforms while keeping power and energy low

    Flexural unfolding of complex geometries in fold and thrust belts using paleomagnetic vectors

    Get PDF
    Three-dimensional reconstructions of the subsurface are an important field in Earth Sciences due to their considerable socio-economic implications as exploration of petroleum resources. 3D reconstruction aims at providing a plausible image of the underground which entail the integration of discrete and heterogeneous datasets. They are based on geometric/mechanic laws and are designed to tackle areas with scarce and heterogeneous data. Restoration algorithms are an important tool to validate these 3D geological reconstructions of the subsurface. Restoration is the way back from the deformed to the undeformed states. Undo the deformation and achieve an initial surface with geological meaning is useful to validate the reconstruction of the folded structure and the deformation processes assumed. The main postulate in most restoration methods is the horizontality of the initial layers while restoration algorithms are based in several deformation processes as flexural slip or simple shear. We deepen in restoration techniques in next chapter but we want to emphasize the importance of a continuous feedback between reconstruction and restoration. This become especially important when complex deformation processes are implied and limited data is available. In addition, restoration tools may also be useful to predict deformation patterns for well characterized structures. However, existing restoration methods do not always succeed for complex structures like non-cylindrical, non-coaxial and/or areas undergoing vertical-axis rotations (out-of-plane motions). We suggest using paleomagnetic information, known in the undeformed (horizontal) and deformed states, as an additional and powerful constraint to improve restoration methods and to reduce the uncertainty of the results. The use of paleomagnetism in restoration tools was recommended in the early 1990¿s. So far, however, relatively few researchers have tried using paleomagnetic information to double-check the rotation inferred from restoration methods and hardly ever paleomagnetism is used as primary information of these tools. In this PhD we want to show how paleomagnetism can reduce the uncertainty in restoration tools when it is used as a constraint, particularly for structures with out-of-plane motions. The bedding plane is the basic 2D reference to relate the undeformed and deformed states, but never could be a real 3D indicator. Our proposal is the usage of paleomagnetism together with the bedding plane as references known in both states. The bedding plane determines the horizontal rotation and paleomagnetism the vertical axis rotation. Paleomagnetic vectors are the record of the ancient magnetic field at the time of the rock formation and we assume that it behaves as a passive marker during the deformation process. Its original orientation can be known in the undeformed surface, and it is represented by the paleomagnetic reference vector. If we see the deformation mechanisms, paleomagnetism allow reducing the number of variables, since it is a passive marker that records the internal deformation and provides us with information of vertical axis rotation. Because accurate paleomagnetic data is necessary to improve results we also work on a good data acquisition. Paleomagnetism may be incorporated in many restoration tools, particularly; we centre our study in geometrical surface unfolding algorithms valid for globally developable surfaces. Developable surfaces are those with Gaussian curvature equal to zero everywhere. These surfaces in geology are stratigraphic horizons folded under flexural conditions that have minimum internal deformation. That implies surfaces isometrically folded with preservation of lengths and angles and consequently with preservation of area. By globally we mean that these constraints are valid almost everywhere but there are areas where internal deformation is possible. We can find this kind of structures in the fold and thrust belts of competent layers at crustal levels. In order to test the restoration methods we develop analog models of complex structures. Laboratory-scale models are based on non-coaxial structures of External Sierras (Pyrenees). These analogs are digitalized with photogrametry and X-Ray CT scanner. In this way, models are completely characterized before and after deformation. This allows the calculus of real deformation of the folded surface and the comparison of the restored surface with the initial one

    Control techniques for thermal-aware energy-efficient real time multiprocessor scheduling

    Get PDF
    La utilización de microprocesadores multinúcleo no sólo es atractiva para la industria sino que en muchos ámbitos es la única opción. La planificación tiempo real sobre estas plataformas es mucho más compleja que sobre monoprocesadores y en general empeoran el problema de sobre-diseño, llevando a la utilización de muchos más procesadores /núcleos de los necesarios. Se han propuesto algoritmos basados en planificación fluida que optimizan la utilización de los procesadores, pero hasta el momento presentan en general inconvenientes que los alejan de su aplicación práctica, no siendo el menor el elevado número de cambios de contexto y migraciones.Esta tesis parte de la hipótesis de que es posible diseñar algoritmos basados en planificación fluida, que optimizan la utilización de los procesadores, cumpliendo restricciones temporales, térmicas y energéticas, con un bajo número de cambios de contexto y migraciones, y compatibles tanto con la generación fuera de línea de ejecutivos cíclicos atractivos para la industria, como de planificadores que integran técnicas de control en tiempo de ejecución que permiten la gestión eficiente tanto de tareas aperiódicas como de desviaciones paramétricas o pequeñas perturbaciones.A este respecto, esta tesis contribuye con varias soluciones. En primer lugar, mejora una metodología de modelo que representa todas las dimensiones del problema bajo un único formalismo (Redes de Petri Continuas Temporizadas). En segundo lugar, propone un método de generación de un ejecutivo cíclico, calculado en ciclos de procesador, para un conjunto de tareas tiempo real duro sobre multiprocesadores que optimiza la utilización de los núcleos de procesamiento respetando también restricciones térmicas y de energía, sobre la base de una planificación fluida. Considerar la sobrecarga derivada del número de cambios de contexto y migraciones en un ejecutivo cíclico plantea un dilema de causalidad: el número de cambios de contexto (y en consecuencia su sobrecarga) no se conoce hasta generar el ejecutivo cíclico, pero dicho número no se puede minimizar hasta que se ha calculado. La tesis propone una solución a este dilema mediante un método iterativo de convergencia demostrada que logra minimizar la sobrecarga mencionada.En definitiva, la tesis consigue explotar la idea de planificación fluida para maximizar la utilización (donde maximizar la utilización es un gran problema en la industria) generando un sencillo ejecutivo cíclico de mínima sobrecarga (ya que la sobrecarga implica un gran problema de los planificadores basados en planificación fluida).Finalmente, se propone un método para utilizar las referencias de la planificación fuera de línea establecida en el ejecutivo cíclico para su seguimiento por parte de un controlador de frecuencia en línea, de modo que se pueden afrontar pequeñas perturbaciones y variaciones paramétricas, integrando la gestión de tareas aperiódicas (tiempo real blando) mientras se asegura la integridad de la ejecución del conjunto de tiempo real duro.Estas aportaciones constituyen una novedad en el campo, refrendada por las publicaciones derivadas de este trabajo de tesis.<br /

    Planificación Tiempo Real en multiprocesadores: reducción de cambios de contexto y migraciones en AlECS

    Get PDF
    El diseño de algoritmos de planificación tiempo real sobre multiprocesadores es un campo en el que la industria tiene interés porque permiten reducir el peso, las dimensiones y el consumo de los sistemas. Uno de los problemas que introducen estos algoritmos es que o bien desperdician tiempo de procesador, o bien introducen sobrecostes al intentar aprovecharlo al máximo, al incrementar las migraciones y cambios de contexto de las tareas.Este trabajo presenta el algoritmo de planificación CAlECS que trabaja con utilización máxima y genera un número de cambios de contextos y migraciones menor que RUN, algoritmo de referencia en este aspecto. La principal novedad en su implementación es el uso de una técnica de clustering (agrupamiento) capaz de obtener planificaciones con utilización máxima, a la vez que permite limitar los procesadores a los que puede migrar cada tarea.Además, genera de forma off-line un ejecutivo cíclico, situándose en la línea de los estándares de la industria de automoción y aeroespacial.También se ha actualizado el entorno de simulación Tertimuss, usado como base experimental durante el trabajo. Se ha renovado completamente su arquitectura y modo de simulación, pasando de simular ciclos de procesador a simular eventos del sistema. Esto reduce de horas a minutos el tiempo de cómputo cuando se simulan grandes volúmenes de experimentos. Tertimuss se ha ampliado con herramientas que permiten el análisis automático de planificaciones obteniendo diferentes métricas (ej. número de cambios de contexto). Se han añadido nuevos métodos de representación de planificaciones, y nuevos algoritmos de planificación y generación de tareas. En la práctica, Tertimuss es más eficiente al usarse como una biblioteca, por lo que se ha modificado sustancialmente la interfaz de programación que ofrece para facilitar su uso en esa forma.Por último, se ha planteado un flujo de trabajo que facilita la aplicación de algoritmos de planificado ejecutados off-line sobre sistemas reales. Este es un flujo de trabajo iterativo, que busca en cada iteración ajustar el máximo tiempo de ejecución de las tareas teniendo en cuenta la planificación de las mismas. Esto permite limitar los sobrecostes que se contabilizan en este. Además, se ha analizado los costes en los que incurre un cambio de contexto y una migración en una placa de desarrollo.<br /

    Caracterización del comportamiento y gestión de interrupciones en sistemas empotrados Linux sobre arquitecturas ARM

    Get PDF
    El objetivo de este TFM es caracterizar el comportamiento de lasinterrupciones sobre SoCs con núcleo ARM orientado a aplicaciones,gestionados mediante Linux. Para ello se parte del estudio de todoslos posibles mecanismos hardware disponibles en ARM para gestionary disminuir la latencia de interrupción. Se estudia el tratamiento delas excepciones en el núcleo de Linux, prestando especial atención ala influencia de los diferentes modos de expulsión, incluyendo la ex-pulsión total para tiempo real estricto, en condiciones de carga y sincarga. Sobre dos placas (Beaglebone y Raspberry Pi) con diferentesmicroprocesadores ARM, en ambos casos orientados a aplicación, secaracterizan las latencias en diferentes niveles y condiciones, desde lageneración /retorno de la señal hasta los handlers y rutinas de serviciode niveles más altos del núcleo. Se estudian las diferencias en los tiem-pos de respuesta de las dos placas analizadas en diferentes condicio-nes. Se muestra que la programaciónbaremetalsin sistema operativo,recurriendo a librerías optimizadas por el fabricante, puede ser másestable pero poco eficiente, proporcionando una latencia de respuestaen torno a 1.5 ms, en relación a Linux/ARM que proporciona laten-cias de respuesta medias en torno a 10 us. Se estudian las variacionesen la latencia de interrupción que aparecen en Linux/ARM y se con-cluye por exclusión que puede deberse a la gestión de los gpios y elsistema de entrada/salida de las placas, y no con los controladores deinterrupciones del SoC o con los mecanismos de gestión de Linux

    Entorno de simulación de planificadores tiempo real para multiprocesadores con restricciones térmicas y de energía

    Get PDF
    El diseño de algoritmos de planificación tiempo real sobre multiprocesadores es un campo en el que la industria tiene interés, pero es más complejo que el diseño tradicional sobre monoprocesadores. Esa complejidad aumenta aún más si a las restricciones temporales hay que añadir que una mala planificación puede generar puntos calientes en el procesador. Las herramientas de simulación ayudan a evaluar la corrección de las planificaciones cuando las pruebas o condiciones teóricas de planificabilidad no aseguran la existencia o no de una planificación viable, por ser generalmente condiciones suficientes pero no necesarias. El cumplimiento de restricciones térmicas o de energía aún hace más necesarios estos simuladores.Este trabajo presenta un simulador de planificadores de tiempo real sensibles a temperatura y energía para multiprocesadores. Ha sido creado en Python haciendo uso de componentes sin restricciones de licencia, y usa Redes de Petri Continuas Temporizadas (TCPN) para simular el sistema. El entorno se basa en uno previo, al cual va a substituir, creado en Matlab, con problemas que limitan su desarrollo, y con un alto coste computacional y de ocupación de memoria.En el nuevo entorno se mitigan los problemas del anterior logrando un speed-up del x9.1 y una reducción de la ocupación de memoria de x5.4. Estas mejoras se logran modificando la TCPN que simula el sistema, optimizando la resolución de la ecuación de estado de la misma y cambiando las estructuras de datos en las que se almacena la misma.La arquitectura del nuevo entorno es completamente diferente de la anterior, y es ahora modular y escalable. Desacopla el simulador de TCPNs de la definición del modelo de sistema, posibilitando cambiar cualquiera de los dos de forma independiente. Además se realiza lo propio entre la definición de planificadores y el conjunto del simulador, lo que permite definirlos mediante una interfaz simple sin conocer el funcionamiento del resto del entorno.Por otro lado, se añaden características nuevas como la posibilidad de tratar tareas aperiódicas, la inclusión de planificadores con intervalos de planificación variables y la inclusión de frecuencias variables en el procesador. Se ha añadido también un nuevo modelo de interacción con el usuario mediante línea de comandos que permite la simulación por lotes, así como nuevos planificadores.Utilizando el nuevo entorno se realiza una comparación entre los cuatro planificadores implementados, donde se muestran y analiza su viabilidad y comportamiento en varios escenarios, incluyendo el cumplimiento de restricciones térmicas.<br /

    Energy-efficient thermal-aware multiprocessor scheduling for real-time tasks using TCPNs

    Get PDF
    We present an energy-effcient thermal-aware real-time global scheduler for a set of hard real-time (HRT) tasks running on a multiprocessor system. This global scheduler fulfills the thermal and temporal constraints by handling two independent variables, the task allocation time and the selection of clock frequency. To achieve its goal, the proposed scheduler is split into two stages. An off-line stage, based on a deadline partitioning scheme, computes the cycles that the HRT tasks must run per deadline interval at the minimum clock frequency to save energy while honoring the temporal and thermal constraints, and computes the maximum frequency at which the system can run below the maximum temperature. Then, an on-line, event-driven stage performs global task allocation applying a Fixed-Priority Zero-Laxity policy, reducing the overhead of quantum-based or interval-based global schedulers. The on-line stage embodies an adaptive scheduler that accepts or rejects soft RT aperiodic tasks throttling CPU frequency to the upper lowest available one to minimize power consumption while meeting time and thermal constraints. This approach leverages the best of two worlds: the off-line stage computes an ideal discrete HRT multiprocessor schedule, while the on-line stage manage soft real-time aperiodic tasks with minimum power consumption and maximum CPU utilization

    DADE: Motor de detección de datos anómalos

    Get PDF
    Actualmente están muy extendidos en los centros de datos los low-volume servers, que albergan máquinas virtuales con aplicaciones accedidas por usuarios de manera concurrente. La seguridad es crucial, sea a nivel de aplicación como a nivel de sistema operativo, para evitar filtración de datos personales. Si el sistema está comprometido y un atacante adquiere permisos de administrador, su próximo movimiento será realizar una escalada de privilegios, ya sea horizontal (dentro de la DMZ) o vertical (red interna). Una aproximación para intentar aumentar los privilegios es instalar código malicioso para, por ejemplo, corromper la filtración de paquetes y acceder a otras máquinas. Existen prototipos como "DADE: A fast Data Anomaly Detection Engine for kernel integrity monitoring" que ayuda a detectar cambios de código o datos dentro del kernel. DADE provee un mecanismo que ayuda a mantener la integridad del sistema operativo Linux. Realiza una detección basada en la monitorización de los objetos del kernel. Los objetos creados en el kernel pueden ser caracterizados por su stacktrace, que es la cadena ordenada de invocaciones a funciones hasta llegar al interfaz de asignación de memoria física del kernel. En este trabajo se ha implementado el prototipo DADE introducido en [4], y se han aportado nuevos métodos para la detección de anomalías. Además de reproducir las técnicas de detección de ataques referidas en dicho artículo, se han desarrollado tres pruebas de concepto propias para atacar el código del kernel y comprobar la viabilidad y eficacia del diseño propuesto

    Real time scheduler for multiprocessor systems based on continuous control using timed continuous petri nets

    Get PDF
    This work exploits Timed Continuous Petri Nets (TCPN) to design and test a novel energy-efficient thermal-aware real-time global scheduler for a hard real-time (HRT) task set running on a multiprocessor system. The TCPN model encompasses both the system and task set, including thermal features. In previous work we calculated the share of each task that must be executed per time interval by solving off-line an Integer Programming Problem Problem (ILP). A subsequent on-line stage allocated jobs to processors. We now perform the allocation off-line too, including an allocation controller and an execution controller in the on-line stage. This adds robustness by ensuring that actual task allocation and execution honor the safe schedule provided off-line. Last, the on-line controllers allow the design of an improved soft RT aperiodic task manager. Also, ee experimentally prove that our scheduler yields fewer context switches and migrations on the HRT task set than RUN, a reference algorith

    Implementación del protocolo DNP3 en una red de sistemas SCADA empotrados para la monitorización de variables y dispositivos

    Get PDF
    Este Trabajo de Fin de Grado se enmarca dentro de mi trabajo en Pariver S.A. y está compuesto por tres partes diferenciadas. Pariver recibió una oferta para un proyecto en El Salvador en la que se buscaba el uso del protocolo DNP3 en la comunicación entre sistemas SCADA. En este Trabajo de Fin de Grado se ha incluido también la creación del propio sistema SCADA y formar redes de comunicación entre ellos. \\ La primera tarea consistió en el estudio y análisis del protocolo DNP3 buscando toda la documentación posible del protocolo. Para subsanar las lagunas y dudas surgidas de la documentación he recurrido a simuladores del protocolo DNP3 y a un analizador de paquetes de red para realizar ingeniería inversa. La segunda tarea trató la implementación del protocolo DNP3 en sendas aplicaciones cliente y servidor que leen los valores de un fichero, los traducen al formato del protocolo y los envían para que sean leídos por el servidor. El servidor analiza los datos y verifica que son aceptables, si no lo son responde al cliente comunicando los cambios necesarios. La tercera y última tarea abarcó la configuración de las placas ARM GuruPlug sobre las que se desplegaron los clientes y servidores DNP3 y la utilización de sensores que comuniquen valores a los SCADA a través de placas Arduino mediante el protocolo Modbus. \\ El resultado es un sistema capaz de recolectar datos del entorno, enviarselos al servidor de forma encriptada, analizar los datos y corregir posibles problemas en la instalación en la que se ha implantado de forma automatica
    • …
    corecore